// https://www.acwing.com/problem/content/796/

#include <iostream>
#include <vector>
using namespace std;


pair<string, int> div(vector<int> &nums1, int num2){
    // results 用于记录结果
    vector<int> results;
    // rest 用于记录余数
    int rest = 0;

    // 1. 从高位开始做除法
    for (int value : nums1) {
        // 对余数乘以 10 再加当前的数，比如 123 / 5，第一是拿 1 / 5 余数为 1，接着拿 12 / 5，余数为 2，接着拿 23 除以 5，余数为 3
        rest = rest * 10 + value;
        // 将除法的结果存到数组中，可能产生前置 0
        results.push_back(rest / num2);
        // 更新余数
        rest %= num2;
    }

    // 2. 处理前置 0，并转换为字符串
    string str_result;
    // flag 用于标记是否遇到了正整数
    bool flag = false;
    for (int result : results) {
        // 一旦遇到正整数，就标记为 true
        if (result > 0) {
            flag = true;
        }
        // 当遇到过正整数，才添加到字符串尾部
        if (flag) {
            str_result += result + '0';
        }
    }

    // 3. 处理分母为 0 或者 分母较小时，str_result 为空的问题
    str_result = str_result.empty() ? "0" : str_result;
    return {str_result, rest};
}


int main(){
    string str1;
    int num2;
    cin>>str1>>num2;
    vector<int> nums1(str1.length());

    for(int i=0; i < str1.length(); i++) {
        nums1[i] = str1[i] - '0';
    }

    auto results = div(nums1, num2);
    cout<<results.first<<endl;
    cout<<results.second<<endl;

    return 0;
}